#pragma once

#include <thread>
#include <iostream>

/*==============================================<任务基类>==============================================*/
class Task
{
public:
    virtual ~Task() = default; // 虚析构函数，确保派生类能正确析构
    virtual void execute() = 0; // 纯虚函数，所有任务都必须实现这个方法
};
/*==============================================<任务派生类>==============================================*/
/*========================<任务派生类 1 --示例>========================*/
// 示例任务1：打印数字
class PrintNumberTask : public Task
{
private:
    int number;
public:
    PrintNumberTask(int num);
    void execute() override;
};

/*========================<任务派生类 2 --示例>========================*/
// 示例任务2：简单计算
class CalculateTask : public Task
{
private:
    int a, b;
public:
    CalculateTask(int x, int y);
    void execute() override;
};